<!-- HTML header for doxygen 1.8.6-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/xhtml;charset=utf-8" http-equiv="Content-Type"/>
<meta content="IE=9" http-equiv="X-UA-Compatible"/>
<meta content="Doxygen 1.8.13" name="generator"/>
<title>OpenCV: cv::TrackerGOTURN Class Reference</title>
<link href="../../opencv.ico" rel="shortcut icon" type="image/x-icon"/>
<link href="../../tabs.css" rel="stylesheet" type="text/css"/>
<script src="../../jquery.js" type="text/javascript"></script>
<script src="../../dynsections.js" type="text/javascript"></script>
<script src="../../tutorial-utils.js" type="text/javascript"></script>
<link href="../../search/search.css" rel="stylesheet" type="text/css"/>
<script src="../../search/searchdata.js" type="text/javascript"></script>
<script src="../../search/search.js" type="text/javascript"></script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js", "TeX/AMSmath.js", "TeX/AMSsymbols.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
//<![CDATA[
MathJax.Hub.Config(
{
  TeX: {
      Macros: {
          matTT: [ "\\[ \\left|\\begin{array}{ccc} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{array}\\right| \\]", 9],
          fork: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ \\end{array} \\right.", 4],
          forkthree: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ \\end{array} \\right.", 6],
          forkfour: ["\\left\\{ \\begin{array}{l l} #1 & \\mbox{#2}\\\\ #3 & \\mbox{#4}\\\\ #5 & \\mbox{#6}\\\\ #7 & \\mbox{#8}\\\\ \\end{array} \\right.", 8],
          vecthree: ["\\begin{bmatrix} #1\\\\ #2\\\\ #3 \\end{bmatrix}", 3],
          vecthreethree: ["\\begin{bmatrix} #1 & #2 & #3\\\\ #4 & #5 & #6\\\\ #7 & #8 & #9 \\end{bmatrix}", 9],
          cameramatrix: ["#1 = \\begin{bmatrix} f_x & 0 & c_x\\\\ 0 & f_y & c_y\\\\ 0 & 0 & 1 \\end{bmatrix}", 1],
          distcoeffs: ["(k_1, k_2, p_1, p_2[, k_3[, k_4, k_5, k_6 [, s_1, s_2, s_3, s_4[, \\tau_x, \\tau_y]]]]) \\text{ of 4, 5, 8, 12 or 14 elements}"],
          distcoeffsfisheye: ["(k_1, k_2, k_3, k_4)"],
          hdotsfor: ["\\dots", 1],
          mathbbm: ["\\mathbb{#1}", 1],
          bordermatrix: ["\\matrix{#1}", 1]
      }
  }
}
);
//]]>
</script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js" type="text/javascript"></script>
<link href="../../doxygen.css" rel="stylesheet" type="text/css"/>
<link href="../../stylesheet.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<!--#include virtual="/google-search.html"-->
<table cellpadding="0" cellspacing="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="../../opencv-logo-small.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">OpenCV
    <span id="projectnumber">4.5.2</span>
   </div>
   <div id="projectbrief">Open Source Computer Vision</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "../../search",false,'Search');
</script>
<script src="../../menudata.js" type="text/javascript"></script>
<script src="../../menu.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
  initMenu('../../',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow" onkeydown="return searchBox.OnSearchSelectKey(event)" onmouseout="return searchBox.OnSearchSelectHide()" onmouseover="return searchBox.OnSearchSelectShow()">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe frameborder="0" id="MSearchResults" name="MSearchResults" src="javascript:void(0)">
</iframe>
</div>
<div class="navpath" id="nav-path">
  <ul>
<li class="navelem"><a class="el" href="../../d2/d75/namespacecv.html">cv</a></li><li class="navelem"><a class="el" href="../../d7/d4c/classcv_1_1TrackerGOTURN.html">TrackerGOTURN</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> |
<a href="#pub-methods">Public Member Functions</a> |
<a href="#pub-static-methods">Static Public Member Functions</a> |
<a href="#pro-methods">Protected Member Functions</a> |
<a href="../../d7/d39/classcv_1_1TrackerGOTURN-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">cv::TrackerGOTURN Class Reference<div class="ingroups"><a class="el" href="../../d7/de9/group__video.html">Video Analysis</a> » <a class="el" href="../../dc/d6b/group__video__track.html">Object Tracking</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<p>the GOTURN (Generic Object Tracking Using Regression Networks) tracker  
 <a href="../../d7/d4c/classcv_1_1TrackerGOTURN.html#details">More...</a></p>
<p><code>#include &lt;opencv2/video/tracking.hpp&gt;</code></p>
<div class="dynheader">
Inheritance diagram for cv::TrackerGOTURN:</div>
<div class="dyncontent">
 <div class="center">
  <img alt="" src="../../d7/d4c/classcv_1_1TrackerGOTURN.png" usemap="#cv::TrackerGOTURN_map"/>
  <map id="cv::TrackerGOTURN_map" name="cv::TrackerGOTURN_map">
<area alt="cv::Tracker" coords="0,0,127,24" href="../../d0/d0a/classcv_1_1Tracker.html" shape="rect" title="Base abstract class for the long-term tracker. "/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td align="right" class="memItemLeft" valign="top">struct  </td><td class="memItemRight" valign="bottom"><a class="el" href="../../dc/d12/structcv_1_1TrackerGOTURN_1_1Params.html">Params</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a9cb7c929284c59356a8b5a4e701d2552"><td align="right" class="memItemLeft" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d4c/classcv_1_1TrackerGOTURN.html#a9cb7c929284c59356a8b5a4e701d2552">~TrackerGOTURN</a> () <a class="el" href="../../db/de0/group__core__utils.html#ga4d89d63e402ef9ddc48e18e21180fe4a">CV_OVERRIDE</a></td></tr>
<tr class="separator:a9cb7c929284c59356a8b5a4e701d2552"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classcv_1_1Tracker"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classcv_1_1Tracker')"><img alt="-" src="../../closed.png"/> Public Member Functions inherited from <a class="el" href="../../d0/d0a/classcv_1_1Tracker.html">cv::Tracker</a></td></tr>
<tr class="memitem:a22cb8a580dbbf280ceef21a04463c307 inherit pub_methods_classcv_1_1Tracker"><td align="right" class="memItemLeft" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d0a/classcv_1_1Tracker.html#a22cb8a580dbbf280ceef21a04463c307">~Tracker</a> ()</td></tr>
<tr class="separator:a22cb8a580dbbf280ceef21a04463c307 inherit pub_methods_classcv_1_1Tracker"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a7793a7ccf44ad5c3557ea6029a42a198 inherit pub_methods_classcv_1_1Tracker"><td align="right" class="memItemLeft" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d0a/classcv_1_1Tracker.html#a7793a7ccf44ad5c3557ea6029a42a198">init</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> image, const <a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> &amp;boundingBox)=0</td></tr>
<tr class="memdesc:a7793a7ccf44ad5c3557ea6029a42a198 inherit pub_methods_classcv_1_1Tracker"><td class="mdescLeft"> </td><td class="mdescRight">Initialize the tracker with a known bounding box that surrounded the target.  <a href="../../d0/d0a/classcv_1_1Tracker.html#a7793a7ccf44ad5c3557ea6029a42a198">More...</a><br/></td></tr>
<tr class="separator:a7793a7ccf44ad5c3557ea6029a42a198 inherit pub_methods_classcv_1_1Tracker"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a92d2012f576e6c06eb2e257d110a6529 inherit pub_methods_classcv_1_1Tracker"><td align="right" class="memItemLeft" valign="top">virtual bool </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d0a/classcv_1_1Tracker.html#a92d2012f576e6c06eb2e257d110a6529">update</a> (<a class="el" href="../../dc/d84/group__core__basic.html#ga353a9de602fe76c709e12074a6f362ba">InputArray</a> image, <a class="el" href="../../dc/d84/group__core__basic.html#ga11d95de507098e90bad732b9345402e8">Rect</a> &amp;boundingBox)=0</td></tr>
<tr class="memdesc:a92d2012f576e6c06eb2e257d110a6529 inherit pub_methods_classcv_1_1Tracker"><td class="mdescLeft"> </td><td class="mdescRight">Update the tracker, find the new most likely bounding box for the target.  <a href="../../d0/d0a/classcv_1_1Tracker.html#a92d2012f576e6c06eb2e257d110a6529">More...</a><br/></td></tr>
<tr class="separator:a92d2012f576e6c06eb2e257d110a6529 inherit pub_methods_classcv_1_1Tracker"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
<tr class="memitem:acf15b9520ec6ad0852b1a1be586c67f5"><td align="right" class="memItemLeft" valign="top">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt; <a class="el" href="../../d7/d4c/classcv_1_1TrackerGOTURN.html">TrackerGOTURN</a> &gt; </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d4c/classcv_1_1TrackerGOTURN.html#acf15b9520ec6ad0852b1a1be586c67f5">create</a> (const <a class="el" href="../../dc/d12/structcv_1_1TrackerGOTURN_1_1Params.html">TrackerGOTURN::Params</a> &amp;parameters=<a class="el" href="../../dc/d12/structcv_1_1TrackerGOTURN_1_1Params.html">TrackerGOTURN::Params</a>())</td></tr>
<tr class="memdesc:acf15b9520ec6ad0852b1a1be586c67f5"><td class="mdescLeft"> </td><td class="mdescRight">Constructor.  <a href="#acf15b9520ec6ad0852b1a1be586c67f5">More...</a><br/></td></tr>
<tr class="separator:acf15b9520ec6ad0852b1a1be586c67f5"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:aad30432d285b1fc293e4b89fd25cc77d"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d7/d4c/classcv_1_1TrackerGOTURN.html#aad30432d285b1fc293e4b89fd25cc77d">TrackerGOTURN</a> ()</td></tr>
<tr class="separator:aad30432d285b1fc293e4b89fd25cc77d"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pro_methods_classcv_1_1Tracker"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classcv_1_1Tracker')"><img alt="-" src="../../closed.png"/> Protected Member Functions inherited from <a class="el" href="../../d0/d0a/classcv_1_1Tracker.html">cv::Tracker</a></td></tr>
<tr class="memitem:a5fc97b90636155b2f0c576cfe15b0f4d inherit pro_methods_classcv_1_1Tracker"><td align="right" class="memItemLeft" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="../../d0/d0a/classcv_1_1Tracker.html#a5fc97b90636155b2f0c576cfe15b0f4d">Tracker</a> ()</td></tr>
<tr class="separator:a5fc97b90636155b2f0c576cfe15b0f4d inherit pro_methods_classcv_1_1Tracker"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a id="details" name="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>the GOTURN (Generic Object Tracking Using Regression Networks) tracker </p>
<p>GOTURN (<a class="el" href="../../d0/de3/citelist.html#CITEREF_GOTURN">[107]</a>) is kind of trackers based on Convolutional Neural Networks (CNN). While taking all advantages of CNN trackers, GOTURN is much faster due to offline training without online fine-tuning nature. GOTURN tracker addresses the problem of single target tracking: given a bounding box label of an object in the first frame of the video, we track that object through the rest of the video. NOTE: Current method of GOTURN does not handle occlusions; however, it is fairly robust to viewpoint changes, lighting changes, and deformations. Inputs of GOTURN are two RGB patches representing Target and Search patches resized to 227x227. Outputs of GOTURN are predicted bounding box coordinates, relative to Search patch coordinate system, in format X1,Y1,X2,Y2. Original paper is here: <a href="http://davheld.github.io/GOTURN/GOTURN.pdf">http://davheld.github.io/GOTURN/GOTURN.pdf</a> As long as original authors implementation: <a href="https://github.com/davheld/GOTURN#train-the-tracker">https://github.com/davheld/GOTURN#train-the-tracker</a> Implementation of training algorithm is placed in separately here due to 3d-party dependencies: <a href="https://github.com/Auron-X/GOTURN_Training_Toolkit">https://github.com/Auron-X/GOTURN_Training_Toolkit</a> GOTURN architecture goturn.prototxt and trained model goturn.caffemodel are accessible on opencv_extra GitHub repository. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="aad30432d285b1fc293e4b89fd25cc77d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aad30432d285b1fc293e4b89fd25cc77d">◆ </a></span>TrackerGOTURN()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">cv::TrackerGOTURN::TrackerGOTURN </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a9cb7c929284c59356a8b5a4e701d2552"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9cb7c929284c59356a8b5a4e701d2552">◆ </a></span>~TrackerGOTURN()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual cv::TrackerGOTURN::~TrackerGOTURN </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="acf15b9520ec6ad0852b1a1be586c67f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acf15b9520ec6ad0852b1a1be586c67f5">◆ </a></span>create()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static <a class="el" href="../../dc/d84/group__core__basic.html#ga6395ca871a678020c4a31fadf7e8cc63">Ptr</a>&lt;<a class="el" href="../../d7/d4c/classcv_1_1TrackerGOTURN.html">TrackerGOTURN</a>&gt; cv::TrackerGOTURN::create </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="../../dc/d12/structcv_1_1TrackerGOTURN_1_1Params.html">TrackerGOTURN::Params</a> &amp; </td>
          <td class="paramname"><em>parameters</em> = <code><a class="el" href="../../dc/d12/structcv_1_1TrackerGOTURN_1_1Params.html">TrackerGOTURN::Params</a>()</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span></span>  </td>
  </tr>
</table><table class="python_language"><tr><th colspan="999" style="text-align:left">Python:</th></tr><tr><td style="width: 20px;"></td><td>retval</td><td>=</td><td>cv.TrackerGOTURN_create(</td><td class="paramname">[, parameters]</td><td>)</td></tr></table>
</div><div class="memdoc">
<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">parameters</td><td>GOTURN parameters <a class="el" href="../../dc/d12/structcv_1_1TrackerGOTURN_1_1Params.html">TrackerGOTURN::Params</a> </td></tr>
  </table>
  </dd>
</dl>
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>opencv2/video/<a class="el" href="../../d4/dc2/modules_2video_2include_2opencv2_2video_2tracking_8hpp.html">tracking.hpp</a></li>
</ul>
</div><!-- contents -->
<!-- HTML footer for doxygen 1.8.6-->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Fri Apr 2 2021 11:36:43 for OpenCV by  <a href="http://www.doxygen.org/index.html">
<img alt="doxygen" class="footer" src="../../doxygen.png"/>
</a> 1.8.13
</small></address>
<script type="text/javascript">
//<![CDATA[
addTutorialsButtons();
//]]>
</script>
</body>
</html>
